package com.xbongbong.saas.constant;

import com.xbongbong.saas.enums.XbbRefTypeEnum;

import java.util.Arrays;
import java.util.List;

/**
 * @author feng.zheng
 * @version v1.0
 * @date 2019/11/29 14:41
 * @since v1.0
 */

public class StockConstant {
    public static final List<Integer> INSTOCK_TYPE_LIST = Arrays.asList(XbbRefTypeEnum.PURCHASE_INSTOCK.getCode(), XbbRefTypeEnum.RETURNED_MATERIEL_INSTOCK.getCode(), XbbRefTypeEnum.REFUND_INSTOCK.getCode(), XbbRefTypeEnum.OTHER_INSTOCK.getCode(), XbbRefTypeEnum.PRODUCTION_INSTOCK.getCode());

    public static final List<Integer> OUTSTOCK_TYPE_LIST = Arrays.asList(XbbRefTypeEnum.CONTRACT_OUTSTOCK.getCode(), XbbRefTypeEnum.RETURNED_PURCHASE_OUTSTOCK.getCode(), XbbRefTypeEnum.OTHER_OUTSTOCK.getCode(), XbbRefTypeEnum.PRODUCTION_MATERIEL_OUTSTOCK.getCode(), XbbRefTypeEnum.WORK_ORDER_OUTSTOCK.getCode());

    public static final List<Integer> STOCK_TYPE_LIST = Arrays.asList(XbbRefTypeEnum.PURCHASE_INSTOCK.getCode(), XbbRefTypeEnum.RETURNED_MATERIEL_INSTOCK.getCode(), XbbRefTypeEnum.REFUND_INSTOCK.getCode(), XbbRefTypeEnum.OTHER_INSTOCK.getCode(), XbbRefTypeEnum.PRODUCTION_INSTOCK.getCode(), XbbRefTypeEnum.CONTRACT_OUTSTOCK.getCode(), XbbRefTypeEnum.RETURNED_PURCHASE_OUTSTOCK.getCode(), XbbRefTypeEnum.OTHER_OUTSTOCK.getCode(), XbbRefTypeEnum.PRODUCTION_MATERIEL_OUTSTOCK.getCode(), XbbRefTypeEnum.WORK_ORDER_OUTSTOCK.getCode());

    public static final List<Integer> OTHER_STOCK_TYPE_LIST = Arrays.asList(XbbRefTypeEnum.OTHER_OUTSTOCK.getCode(), XbbRefTypeEnum.OTHER_INSTOCK.getCode());

    public static final List<Integer> EXCLUDE_INSTOCK_TYPE_LIST = Arrays.asList(XbbRefTypeEnum.PURCHASE_INSTOCK.getCode(), XbbRefTypeEnum.RETURNED_MATERIEL_INSTOCK.getCode(), XbbRefTypeEnum.REFUND_INSTOCK.getCode(),XbbRefTypeEnum.PRODUCTION_INSTOCK.getCode());

    public static final List<Integer> EXCLUDE_OUTSTOCK_TYPE_LIST = Arrays.asList(XbbRefTypeEnum.CONTRACT_OUTSTOCK.getCode(), XbbRefTypeEnum.RETURNED_PURCHASE_OUTSTOCK.getCode(), XbbRefTypeEnum.PRODUCTION_MATERIEL_OUTSTOCK.getCode(), XbbRefTypeEnum.WORK_ORDER_OUTSTOCK.getCode());

    public static final List<Integer> BI_INSTOCK_TYPE_LIST = Arrays.asList(XbbRefTypeEnum.PURCHASE_INSTOCK.getCode(), XbbRefTypeEnum.PRODUCTION_INSTOCK.getCode(), XbbRefTypeEnum.RETURNED_MATERIEL_INSTOCK.getCode());

    public static final List<Integer> BI_OUTSTOCK_TYPE_LIST = Arrays.asList(XbbRefTypeEnum.CONTRACT_OUTSTOCK.getCode(), XbbRefTypeEnum.PRODUCTION_MATERIEL_OUTSTOCK.getCode());

    public static final List<Integer> OLD_STOCK_TYPE_LIST = Arrays.asList(XbbRefTypeEnum.OUTSTOCK.getCode(), XbbRefTypeEnum.INSTOCK.getCode());

    public static final List<Integer> BATCH_TYPE_LIST = Arrays.asList(XbbRefTypeEnum.PURCHASE_INSTOCK.getCode(), XbbRefTypeEnum.RETURNED_MATERIEL_INSTOCK.getCode(),
            XbbRefTypeEnum.REFUND_INSTOCK.getCode(), XbbRefTypeEnum.OTHER_INSTOCK.getCode(), XbbRefTypeEnum.PRODUCTION_INSTOCK.getCode(), XbbRefTypeEnum.CONTRACT_OUTSTOCK.getCode(),
            XbbRefTypeEnum.RETURNED_PURCHASE_OUTSTOCK.getCode(), XbbRefTypeEnum.OTHER_OUTSTOCK.getCode(), XbbRefTypeEnum.PRODUCTION_MATERIEL_OUTSTOCK.getCode(), XbbRefTypeEnum.WORK_ORDER_OUTSTOCK.getCode(),
            XbbRefTypeEnum.INVENTORY.getCode(), XbbRefTypeEnum.TRANSFER.getCode(), XbbRefTypeEnum.ASSEMBLE.getCode(), XbbRefTypeEnum.ORI_STOCK.getCode(), XbbRefTypeEnum.REFUND.getCode(), XbbRefTypeEnum.RETURNED_PURCHASE.getCode(),
            XbbRefTypeEnum.COST_ADJUST.getCode());

    // 序列号相关业务类型
    public static final List<Integer> SERIAL_TYPE_LIST = Arrays.asList(XbbRefTypeEnum.PURCHASE_INSTOCK.getCode(), XbbRefTypeEnum.RETURNED_PURCHASE.getCode(), XbbRefTypeEnum.RETURNED_PURCHASE_OUTSTOCK.getCode(),
            XbbRefTypeEnum.PRODUCTION_INSTOCK.getCode(), XbbRefTypeEnum.PRODUCTION_MATERIEL_OUTSTOCK.getCode(), XbbRefTypeEnum.RETURNED_MATERIEL_INSTOCK.getCode(),
            XbbRefTypeEnum.CONTRACT_OUTSTOCK.getCode(), XbbRefTypeEnum.REFUND.getCode(), XbbRefTypeEnum.REFUND_INSTOCK.getCode(),
            XbbRefTypeEnum.OTHER_OUTSTOCK.getCode(), XbbRefTypeEnum.OTHER_INSTOCK.getCode(), XbbRefTypeEnum.WORK_ORDER_OUTSTOCK.getCode(),
            XbbRefTypeEnum.TRANSFER.getCode(), XbbRefTypeEnum.ASSEMBLE.getCode(), XbbRefTypeEnum.ORI_STOCK.getCode());


    public static final List<Integer> MULTI_UNIT_TYPE_LIST = Arrays.asList(XbbRefTypeEnum.CONTRACT.getCode(), XbbRefTypeEnum.SALES_OPPORTUNITY.getCode(),
            XbbRefTypeEnum.QUOTATION.getCode(), XbbRefTypeEnum.CONTRACT_OUTSTOCK.getCode(), XbbRefTypeEnum.REFUND.getCode(), XbbRefTypeEnum.REFUND_INSTOCK.getCode(),XbbRefTypeEnum.PURCHASE.getCode(),XbbRefTypeEnum.PURCHASE_INSTOCK.getCode(),
            XbbRefTypeEnum.RETURNED_PURCHASE_OUTSTOCK.getCode(), XbbRefTypeEnum.RETURNED_PURCHASE.getCode(), XbbRefTypeEnum.PRODUCTION_ORDER.getCode(), XbbRefTypeEnum.PRODUCTION_INSTOCK.getCode(), XbbRefTypeEnum.RETURNED_MATERIEL_INSTOCK.getCode(), XbbRefTypeEnum.PRODUCTION_MATERIEL_OUTSTOCK.getCode(), XbbRefTypeEnum.WORK_ORDER_OUTSTOCK.getCode(),
            XbbRefTypeEnum.WORK_ORDER.getCode(), XbbRefTypeEnum.TRANSFER.getCode(), XbbRefTypeEnum.ASSEMBLE.getCode(), XbbRefTypeEnum.ORI_STOCK.getCode(), XbbRefTypeEnum.OTHER_INSTOCK.getCode(), XbbRefTypeEnum.OTHER_OUTSTOCK.getCode(),
            XbbRefTypeEnum.INSTOCK.getCode(), XbbRefTypeEnum.OUTSTOCK.getCode(), XbbRefTypeEnum.COST_ADJUST.getCode(),XbbRefTypeEnum.WORK_ORDER_V2.getCode());

    public static final List<Integer> MULTI_UNIT_PRICE_TYPE_LIST = Arrays.asList(XbbRefTypeEnum.CONTRACT.getCode(), XbbRefTypeEnum.SALES_OPPORTUNITY.getCode(),
            XbbRefTypeEnum.QUOTATION.getCode(),XbbRefTypeEnum.WORK_ORDER.getCode(), XbbRefTypeEnum.CONTRACT_OUTSTOCK.getCode(),XbbRefTypeEnum.WORK_ORDER_V2.getCode());

    public static final List<Integer> MULTI_UNIT_SELLING_PRICE_TYPE_LIST = Arrays.asList(XbbRefTypeEnum.CONTRACT.getCode(), XbbRefTypeEnum.QUOTATION.getCode(), XbbRefTypeEnum.CONTRACT_OUTSTOCK.getCode());


    public static final List<Integer> STOCK_SEARCH_TYPE_LIST = Arrays.asList(XbbRefTypeEnum.STOCK_SEARCH.getCode(), XbbRefTypeEnum.WARNING_SEARCH.getCode(), XbbRefTypeEnum.GUARANTEE_SEARCH.getCode());

    //多单位导出涉及业务
    public static final List<Integer> EXPORT_MULTI_UNIT_TYPE_LIST = Arrays.asList(XbbRefTypeEnum.SALES_OPPORTUNITY.getCode(), XbbRefTypeEnum.QUOTATION.getCode(), XbbRefTypeEnum.CONTRACT.getCode(),
            XbbRefTypeEnum.PURCHASE.getCode(), XbbRefTypeEnum.REFUND.getCode(), XbbRefTypeEnum.RETURNED_PURCHASE.getCode(), XbbRefTypeEnum.WORK_ORDER.getCode(), XbbRefTypeEnum.PRODUCTION_ORDER.getCode(),
            XbbRefTypeEnum.ASSEMBLE.getCode(), XbbRefTypeEnum.PURCHASE_INSTOCK.getCode(), XbbRefTypeEnum.REFUND_INSTOCK.getCode(), XbbRefTypeEnum.OTHER_INSTOCK.getCode(), XbbRefTypeEnum.PRODUCTION_INSTOCK.getCode(),
            XbbRefTypeEnum.RETURNED_MATERIEL_INSTOCK.getCode(), XbbRefTypeEnum.CONTRACT_OUTSTOCK.getCode(), XbbRefTypeEnum.RETURNED_PURCHASE_OUTSTOCK.getCode(), XbbRefTypeEnum.OTHER_OUTSTOCK.getCode(),
            XbbRefTypeEnum.PRODUCTION_MATERIEL_OUTSTOCK.getCode(), XbbRefTypeEnum.WORK_ORDER_OUTSTOCK.getCode(), XbbRefTypeEnum.TRANSFER.getCode(), XbbRefTypeEnum.ORI_STOCK.getCode(),
            XbbRefTypeEnum.ORDER.getCode(), XbbRefTypeEnum.ORDER_OUTSTOCK.getCode(), XbbRefTypeEnum.RETURN.getCode(),XbbRefTypeEnum.SMART_REPLENISHMENT.getCode(),XbbRefTypeEnum.WORK_ORDER_V2.getCode());

    //导入需要自动填充基本单位的业务单据
    public static final List<Integer> IMPORT_MULTI_UNIT_TYPE = Arrays.asList(XbbRefTypeEnum.INVENTORY.getCode(), XbbRefTypeEnum.BOM_BILL.getCode(), XbbRefTypeEnum.SUPPLIER.getCode());
}
